// utils/date-format.js
// 日期格式化工具

/**
 * 日期格式化工具
 * 将日期对象格式化为指定格式的字符串
 *
 * 示例：
 *   formatDate(new Date(), 'yyyy-MM-dd') // "2023-10-15"
 *   formatDate(new Date(), 'yyyy-MM-dd HH:mm') // "2023-10-15 14:30"
 *
 * 支持的格式：
 *   yyyy: 年份
 *   MM: 月份（01-12）
 *   dd: 日期（01-31）
 *   HH: 小时（00-23）
 *   mm: 分钟（00-59）
 *   ss: 秒（00-59）
 *
 * @param date - 要格式化的日期对象
 * @param format - 格式字符串，默认为'yyyy-MM-dd'
 * @returns 格式化后的字符串
 */
function formatDate(date, format = 'yyyy-MM-dd') {
    // 1. 获取日期各部分
    const year = date.getFullYear();
    const month = (date.getMonth() + 1).toString().padStart(2, '0');
    const day = date.getDate().toString().padStart(2, '0');
    const hours = date.getHours().toString().padStart(2, '0');
    const minutes = date.getMinutes().toString().padStart(2, '0');
    const seconds = date.getSeconds().toString().padStart(2, '0');

    // 2. 替换格式字符串中的占位符
    return format
        .replace('yyyy', year.toString())
        .replace('MM', month)
        .replace('dd', day)
        .replace('HH', hours)
        .replace('mm', minutes)
        .replace('ss', seconds);
}

// 将formatDate挂载到Vue原型，方便组件访问
const app = Vue.createApp({});
app.config.globalProperties.$formatDate = formatDate;
